ダッシュボードでフィルターの値が正しく表示されない時の対処法
はじめに
データアナリティクス事業本部 BIチームの投埜です。
Tableauのダッシュボードで設定したフィルターがうまく動かない事はありませんか。
今回の記事では2つの事例を交えて、正しくフィルターが設定できる方法を紹介します。
この方法は簡単に実践できる方法となっています。
※使用するデータソースはTableauのサンプルデータである「スーパーストア」を使用します。
内容の紹介にあたり2つの用語の説明をします。
ディメンションフィルターについて
ディメンションフィルターは、ディメンションを「フィルターシェルフ」に入れることで使用することができます。値を絞ったり追加したりすることができ、ダッシュボードを作る際にはほぼ使用する機能です。
アクションフィルターについて
アクションフィルターではワークシート間でフィルターを設定するものになります。
具体的にはシートAで選択した内容をシートBでフィルターするものになります。
設定方法は画像の赤枠から行うケースとメニューから設定を行う事が可能です。
<ダッシュボードからの設定方法>
<メニューから設定する方法>
「ダッシュボード」から「アクション」を選択し、
フィルターを選択します。
ターゲットシートでフィルター元を選択し、ターゲットシートでは適応させるシートを選択します。
用語の解説は以上になるのでここからが本文になります。
事例1ワークシートで除外した値がダッシュボードで全て表示される
画像のダッシュボードでは、左側にカテゴリごとの売上を表示させており、右側ではカテゴリの事務用品を全て除外した、サブカテゴリの売上を表示しています。
この状態でアクションを設定し、左側のシートで事務用品を選択してしまうと、右側のシートで事務用品が表示されてしまいます。
アクションの設定
こちらの原因を見ていきましょう。
起こっている事象
Tableauでは同一のピルを2つ以上入れる事はできません。
これは同じディメンションのフィルターが競合しない仕様が設定されています。
今回のケースではサブカテゴリのシートにおいて2つの「カテゴリ」が選ばれている状態です。
具体的には「アクションフィルター」と「ディメンションフィルター」で「カテゴリ」が選択されている状態です。
そのため、ダッシュボードのアクションフィルターが適応されると、サブカテゴリのシートでは、ディメンションフィルターの「カテゴリ」ではなく、アクションフィルターの「カテゴリ」が適応されてしまいます。
一方でアクションフィルターをかけた後に、ワークシートで表示されている「カテゴリ」のクイックフィルターを選択するとアクションフィルターを無視して、ディメンションフィルターが適応されます。
<Tableau ナレッジベースより>
https://kb.tableau.com/articles/issue/action-filter-resets-quick-filter?lang=ja-jp
解決策-値を除外したままにしておくには複製したディメンションを追加する
ここではフィルターで使用するディメンションを「複製」することで、フィルターがリセットされるのを防いでいきます。
具体的にはアクションで設定されるディメンションとは別のディメンションを設定するというものです。
データペインからピルを右クリックすることで「複製」を行うことができます。
今回のケースではサブカテゴリのシートにおいて、「カテゴリ」のアクションフィルターが設定され、サブカテゴリのシートでは「カテゴリ」のディメンションフィルターが設定されています。
このままでは、「カテゴリ」に対してアクションフィルターとディメンションフィルターが適応されてしまい、フィルターが※競合状態になってしまいます。(※競合状態とはTableauとしてもディメンションフィルターの「カテゴリ」かアクションフィルターの「カテゴリ」どちらを適応するべきか迷ってしまうイメージです。)
そこで、「カテゴリ」を複製して「カテゴリ2」というディメンションを設定します。
その後「カテゴリ2」を使用してディメンションフィルターを設定し「事務用品」を除外します。
これでアクションフィルターを設定しながら、ディメンションフィルターも実装されています。つまり、アクションフィルターでは「カテゴリ」が設定され、「ディメンションフィル
ター」では「カテゴリ2」が選択されている状態です。
<アクションフィルターで家電を選択>
<家電のアクションフィルターを解除して、事務用品が除外されている>
アクションフィルターとしては「カテゴリ」が設定され、ディメンションフィルターとしては「カテゴリ2」が設定されているので、フィルターの競合状態は解除されました。
今回の解決策ですが、Tableauのナレッジベースを確認すると「アクション フィルターとクイック フィルター間の競合フィルターが取得される可能性があります。」と記載があります。
上記の解決策を実施した際には、問題なくフィルターが実装されているかどうかダッシュボードをテストしていきましょう。
事例2 アクションフィルターを設定したあとに同じディメンションのディメンションフィルターを設定する場合
今回のダッシュボードでは、左の散布図でサブカテゴリを選択し、右半分の推移のシートでは選択されたサブカテゴリの推移が見れるようにしたものです。(画像では文房具を選択)
今回のダッシュボードではフィルターアクションでサブカテゴリを選択できるだけではなく、ディメンションフィルターでもサブカテゴリを右側(売上推移と利益推移)のみ選択できるようにしていきます。
しかし、現状のダッシュボードではアクションフィルターを実施したあとにディメンションフィルターを設定すると1つだけのシートにしかディメンションフィルターが適応されず、もう片方のシートでは真っ白になってしまいました。
原因
こちらの事象については、明確な原因はわからず、Tableauのコミュニティを見るとバグではないか?という投稿がありました。参照
私個人の推測にはなりますが、恐らく事例1のアクションフィルターとディメンション・フィルターがお互いに動いたことが原因なのかなと考えています。
一方で解決策に関してはしっかりとございますので解説致します。
解決策:アクションフィルターを表示する
解決策は設定されているアクションフィルターをディメンションフィルターのように操作するというものです。フィルターに存在するアクションフィルターのピルはほかのシートにも適応可能です。
具体的には以下です。
まずはディメンションフィルターを削除します。
その後アクションフィルターとして設定されている「アクション(カテゴリ)」のフィルターを表示させます。これでディメンションフィルターのようにアクションフィルターを操作できるようになります。
ほかのシートにもアクションフィルターを適応させます。
今回は利益推移に適応させます。
これで散布図からアクションフィルターをかけたあともダッシュボードの画面からサブカテゴリを変更することができるようになります。
今回のケースではダッシュボードで表示されているフィルターは「ディメンションフィルター」ではなく、「アクションフィルター」になります。
※補足
ちなみにTableau上で設定したアクションフィルターは「非表示のフィールドを表示」を選択することでデータペインから表示されます。
まとめ
今回はアクションフィルターとディメンションフィルターの事例を解説しました。アクションフィルターは便利なのですが、ワークシートで使用されているディメンションフィルターによっては自分が意図しない挙動を行ってしまうかもしれません。
その際は、今回のブログが解決のヒントになれば嬉しいです。